#if !defined(__APP_POOL_H__)
#define __APP_POOL_H__

/**
 * 1 线程池的初始化
 * 线程池和队列
 * 2 向线程池注册一个任务
 * 任务的定义  方法  函数指针
 * 任务需要的参数
 * 3 线程池的销毁
 */

typedef struct  
{
    void (*func)(void *); // 函数指针
    void *arg; // 参数
}task_t;

/**
 * @brief 线程池的初始化
 * 
 * @param thread_num 线程池中线程的数量
 */

int app_pool_init(int thread_num);

/**
 * @brief 向线程池注册一个任务
 * 
 * @param task 任务
 */
int app_pool_register(void (*task_func)(void *arg),void *arg);


/**
 * @brief 线程池的销毁
 */
void app_pool_destroy(void);
#endif